package com.songlanyun.modules.userbankcard.entity;

import cn.hutool.core.util.DesensitizedUtil;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.lang.reflect.Member;
import java.util.Date;

import com.songlanyun.common.drive.RootEntity;
import com.songlanyun.common.enums.MemberConstant;
import com.songlanyun.common.enums.WithdrawConstant;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 用户的银行卡
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2020-12-08 13:56:16
 */
@Data
@TableName("yxt_user_bank_card")
public class UserBankCardEntity extends RootEntity<Long, UserBankCardEntity> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private Long id;
    /**
     * 用户类型
     * 0：会员
     * 1：商家
     */
    private MemberConstant.UserType userType;
    /**
     * 身份id(会员：会员id，商家：商家id)
     */
    private Long identityId;
    /**
     * 卡号
     */
    private String cardNum;

    /**
     * 卡号脱敏(只返回卡号最后四位数)
     */
    public String loadDesCardNum() {
        if (StringUtils.isNotEmpty(this.cardNum) && this.cardNum.length() > 4) {
            return this.cardNum = this.cardNum.substring(this.cardNum.length() - 4);
        }
        return this.cardNum;
    }

    /**
     * 开户银行名称
     */
    private String bankName;
    /**
     * 开户银行图标
     */
    private String icon;
    /**
     * 预留的手机号
     */
    private String mobile;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    /**
     * 姓名
     */
    private String name;
    /**
     * 银行地址
     */
    private String bankAddress;
    /**
     * 是否是默认
     */
    private Boolean isDefault;
    /**
     * 身份证
     */
    private String identityCard;

    @Override
    public Long getIdentity() {
        return getId();
    }
}
